package dados;

import java.util.ArrayList;
import java.sql.Date;
import java.util.List;

public class Especialista extends Pessoa{

	private String formacao;
	private List<Central> centralAnalises;
	private List<Resultado> resultado;
	
	public Especialista(int id){
		super(id);
	}
	
	public Especialista(int id, char sexo, String nome, long rg, long cpf,
			Date dataNas, String endereco, String formacao, byte[] foto) {
		super(id, sexo, nome, rg, cpf, dataNas, endereco, foto);
		this.formacao = formacao;
		this.centralAnalises = new ArrayList<Central>();
		this.resultado = new ArrayList<Resultado>();
	}
	
	public Especialista(int id, String nome, long cpf, long rg) {
		super(id, 'a', nome, rg, cpf, null, null, null);
		this.formacao = "";
		this.centralAnalises = new ArrayList<Central>();
		this.resultado = new ArrayList<Resultado>();
	}

	public List<Central> getCentralAnalises() {
		return centralAnalises;
	}

	public void setCentralAnalises(List<Central> centralAnalises) {
		this.centralAnalises = centralAnalises;
	}

	public List<Resultado> getResultado() {
		return resultado;
	}

	public void setResultado(List<Resultado> resultado) {
		this.resultado = resultado;
	}

	public String getFormacao() {
		return this.formacao;
	}

	public void setFormacao(String formacao) {
		this.formacao = formacao;
	}
	
	public void adicionarCentral(Central central){
		this.centralAnalises.add(central);
	}
	
	public void removerCentral(Central central){
		this.centralAnalises.remove(central);
	}
	
	public boolean existeCentral(Central central){
		boolean retorno = false;
		
		if(this.centralAnalises.contains(central)){
			retorno = true;
		}
		return retorno;
	}
	
	public void adicionarResultado(Resultado resultado){
		this.resultado.add(resultado);
	}
	
	public void Resultado(Resultado resultado){
		this.resultado.remove(resultado);
	}
	
	public boolean existeResultado(Resultado resultado){
		boolean retorno = false;
		
		if(this.resultado.contains(resultado)){
			retorno = true;
		}
		return retorno;
	}

	@Override
	public String toString() {
		return super.getNome();
	}
	
	public boolean equals(Especialista especialista){
		boolean retorno = false;
		
		if(this.getId() == especialista.getId()){
			retorno = true;
		}
		return retorno;
	}
}
